package com.cmwa.scbp.sys.schedule.dao;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.cmwa.scbp.base.annotation.MybatisDao;
import com.cmwa.scbp.base.mvc.entity.SearchParam;
import com.cmwa.scbp.sys.schedule.entity.ScheduleVo;

@MybatisDao
public interface ScheduleDao {

	ScheduleVo findById(String taskId);

	/**
	 * 记录job运行状态
	 * 
	 * @param taskId
	 *            jobId
	 * @param result
	 *            运行结果
	 * @param nextFimeTime TODO
	 */
	void updateRunningResult(@Param("taskId") String taskId, @Param("result") String result, @Param("nextFireTime")Date nextFireTime);

	List<ScheduleVo> queryAllSchedule();
	
	/**
	 * 定时任务数据分页
	 * @author ex-weicb
	 * @createDate 2016年6月27日 下午12:16:34
	 * @param param
	 * @return
	 */
	public List<ScheduleVo> scheduleListPage(SearchParam param);

	/**
	 * 更新定时任务状态
	 * @author ex-weicb
	 * @createDate 2016年6月27日 下午1:38:29
	 * @param schedule
	 * @return
	 */
	public void changeState(ScheduleVo schedule);

	/**
	 * 修改定时任务的执行规则
	 * @param schedule
	 */
	void changeTime(ScheduleVo schedule);

	/**
	 * 修改预计执行耗时（分钟）
	 * @param schedule
	 */
	void modifyScheduleExecutionTime(ScheduleVo schedule);
}
